#ifndef _DIQ_TYPEDEF_
#define _DIQ_TYPEDEF_

#include "CPxTime2a.h"

typedef union _DIQ {//带品质描述的双点信息 DIQ
	struct {
		#if (IEC_ENDIAN  == IEC_LITTLE_ENDIAN)
			uint8_t DPI : 2 ; //DPI（1bit）＝0||＝3：中间状态或不确定 ;＝1：确定状态 ON（开）;＝2：确定状态 OFF（合）;
			uint8_t RES : 2 ; //RES（3bit）：保留
			uint8_t BL  : 1 ; //BL（1bit）＝ 0：未被闭锁 ＝1：被闭锁
			uint8_t SB  : 1 ; //SB（1bit）＝ 0：未被取代 ＝1：被取代
			uint8_t NT  : 1 ; //NT （1bit）＝ 0：当前值 ＝1：非当前值
			uint8_t IV  : 1 ; //IV（1bit） ＝0：有效 ＝1：无效
		#else 
			uint8_t IV  : 1 ; //IV（1bit） ＝0：有效 ＝1：无效
			uint8_t NT  : 1 ; //NT （1bit）＝ 0：当前值 ＝1：非当前值
			uint8_t SB  : 1 ; //SB（1bit）＝ 0：未被取代 ＝1：被取代
			uint8_t BL  : 1 ; //BL（1bit）＝ 0：未被闭锁 ＝1：被闭锁
			uint8_t RES : 2 ; //RES（3bit）：保留
			uint8_t DPI : 2 ; //DPI（1bit）＝0||＝3：中间状态或不确定 ;＝1：确定状态 ON（开）;＝2：确定状态 OFF（合）;
		#endif
	}part ;

	uint8_t val;
}DIQ_t;


typedef struct _DIQ0T {
	DIQ_t   DIQ ;
}
DIQ0T_t;

typedef struct _DIQ24T {
	DIQ_t   DIQ ;
	struct CP24Time2a time;
}
DIQ24T_t;

typedef struct _DIQ56T {
	DIQ_t   DIQ ;
	struct CP56Time2a time;
}
DIQ56T_t;

#endif
